CNTLibraryLibrary "CNTLibrary"
Custom Functions To Help Code In Pinescript V5
Coded By Christian Nataliano
First Coded In 10/06/2023
Last Edited In 22/06/2023
Huge Shout Out To © ZenAndTheArtOfTrading and his ZenLibrary V5, Some Of The Custom Functions Were Heavily Inspired By Matt's Work & His Pine Script Mastery Course
Another Shout Out To The TradingView's Team Library ta V5
//====================================================================================================================================================
// Custom Indicator Functions
//====================================================================================================================================================
GetKAMA(KAMA_lenght, Fast_KAMA, Slow_KAMA)
Calculates An Adaptive Moving Average Based On Perry J Kaufman's Calculations
Parameters:
KAMA_lenght (int) : Is The KAMA Lenght
Fast_KAMA (int) : Is The KAMA's Fastes Moving Average
Slow_KAMA (int) : Is The KAMA's Slowest Moving Average
Returns: Float Of The KAMA's Current Calculations
GetMovingAverage(Source, Lenght, Type)
Get Custom Moving Averages Values
Parameters:
Source (float) : Of The Moving Average, Defval = close
Lenght (simple int) : Of The Moving Average, Defval = 50
Type (string) : Of The Moving Average, Defval = Exponential Moving Average
Returns: The Moving Average Calculation Based On Its Given Source, Lenght & Calculation Type (Please Call Function On Global Scope)
GetDecimals()
Calculates how many decimals are on the quote price of the current market © ZenAndTheArtOfTrading
Returns: The current decimal places on the market quote price
Truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places © ZenAndTheArtOfTrading
Parameters:
number (float)
decimalPlaces (simple float)
Returns: The given number truncated to the given decimalPlaces
ToWhole(number)
Converts pips into whole numbers © ZenAndTheArtOfTrading
Parameters:
number (float)
Returns: The converted number
ToPips(number)
Converts whole numbers back into pips © ZenAndTheArtOfTrading
Parameters:
number (float)
Returns: The converted number
GetPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period © ZenAndTheArtOfTrading
Parameters:
value1 (float)
value2 (float)
lookback (int)
BarsAboveMA(lookback, ma)
Counts how many candles are above the MA © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are above the MA
BarsBelowMA(lookback, ma)
Counts how many candles are below the MA © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are below the EMA
BarsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many times price recently crossed the EMA
GetPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count) © ZenAndTheArtOfTrading
Parameters:
lookback (int)
direction (int)
Returns: The bar count of how many candles have retraced over the given lookback & direction
GetSwingHigh(Lookback, SwingType)
Check If Price Has Made A Recent Swing High
Parameters:
Lookback (int) : Is For The Swing High Lookback Period, Defval = 7
SwingType (int) : Is For The Swing High Type Of Identification, Defval = 1
Returns: A Bool - True If Price Has Made A Recent Swing High
GetSwingLow(Lookback, SwingType)
Check If Price Has Made A Recent Swing Low
Parameters:
Lookback (int) : Is For The Swing Low Lookback Period, Defval = 7
SwingType (int) : Is For The Swing Low Type Of Identification, Defval = 1
Returns: A Bool - True If Price Has Made A Recent Swing Low
//====================================================================================================================================================
// Custom Risk Management Functions
//====================================================================================================================================================
CalculateStopLossLevel(OrderType, Entry, StopLoss)
Calculate StopLoss Level
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, Defval = na
StopLoss (float) : Is The Custom StopLoss Distance, Defval = 2x ATR Below Close
Returns: Float - The StopLoss Level In Actual Price As A
CalculateStopLossDistance(OrderType, Entry, StopLoss)
Calculate StopLoss Distance In Pips
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
StopLoss (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
Returns: Float - The StopLoss Value In Pips
CalculateTakeProfitLevel(OrderType, Entry, StopLossDistance, RiskReward)
Calculate TakeProfit Level
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, Defval = na
StopLossDistance (float)
RiskReward (float)
Returns: Float - The TakeProfit Level In Actual Price
CalculateTakeProfitDistance(OrderType, Entry, TakeProfit)
Get TakeProfit Distance In Pips
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
TakeProfit (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
Returns: Float - The TakeProfit Value In Pips
CalculateConversionCurrency(AccountCurrency, SymbolCurrency, BaseCurrency)
Get The Conversion Currecny Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
Parameters:
AccountCurrency (simple string) : Is For The Account Currency Used
SymbolCurrency (simple string) : Is For The Current Symbol Currency (Front Symbol)
BaseCurrency (simple string) : Is For The Current Symbol Base Currency (Back Symbol)
Returns: Tuple Of A Bollean (Convert The Currency ?) And A String (Converted Currency)
CalculateConversionRate(ConvertCurrency, ConversionRate)
Get The Conversion Rate Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
Parameters:
ConvertCurrency (bool) : Is To Check If The Current Symbol Needs To Be Converted Or Not
ConversionRate (float) : Is The Quoted Price Of The Conversion Currency (Input The request.security Function Here)
Returns: Float Price Of Conversion Rate (If In The Same Currency Than Return Value Will Be 1.0)
LotSize(LotSizeSimple, Balance, Risk, SLDistance, ConversionRate)
Get Current Lot Size
Parameters:
LotSizeSimple (bool) : Is To Toggle Lot Sizing Calculation (Simple Is Good Enough For Stocks & Crypto, Whilst Complex Is For Forex)
Balance (float) : Is For The Current Account Balance To Calculate The Lot Sizing Based Off
Risk (float) : Is For The Current Risk Per Trade To Calculate The Lot Sizing Based Off
SLDistance (float) : Is The Current Position StopLoss Distance From Its Entry Price
ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
Returns: Float - Position Size In Units
ToLots(Units)
Converts Units To Lots
Parameters:
Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
Returns: Float - Position Size In Lots
ToUnits(Lots)
Converts Lots To Units
Parameters:
Lots (float) : Is For How Many Lots Need To Be Converted Into Units (Minimun 0.01 Units)
Returns: Int - Position Size In Units
ToLotsInUnits(Units)
Converts Units To Lots Than Back To Units
Parameters:
Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
Returns: Float - Position Size In Lots That Were Rounded To Units
ATRTrail(OrderType, SourceType, ATRPeriod, ATRMultiplyer, SwingLookback)
Calculate ATR Trailing Stop
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
SourceType (int) : Is To Determine Where To Calculate The ATR Trailing From, Defval = close
ATRPeriod (simple int) : Is To Change Its ATR Period, Defval = 20
ATRMultiplyer (float) : Is To Change Its ATR Trailing Distance, Defval = 1
SwingLookback (int) : Is To Change Its Swing HiLo Lookback (Only From Source Type 5), Defval = 7
Returns: Float - Number Of The Current ATR Trailing
DangerZone(WinRate, AvgRRR, Filter)
Calculate Danger Zone Of A Given Strategy
Parameters:
WinRate (float) : Is The Strategy WinRate
AvgRRR (float) : Is The Strategy Avg RRR
Filter (float) : Is The Minimum Profit It Needs To Be Out Of BE Zone, Defval = 3
Returns: Int - Value, 1 If Out Of Danger Zone, 0 If BE, -1 If In Danger Zone
IsQuestionableTrades(TradeTP, TradeSL)
Checks For Questionable Trades (Which Are Trades That Its TP & SL Level Got Hit At The Same Candle)
Parameters:
TradeTP (float) : Is The Trade In Question Take Profit Level
TradeSL (float) : Is The Trade In Question Stop Loss Level
Returns: Bool - True If The Last Trade Was A "Questionable Trade"
//====================================================================================================================================================
// Custom Strategy Functions
//====================================================================================================================================================
OpenLong(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue)
Open A Long Order Based On The Given Params
Parameters:
EntryID (string) : Is The Trade Entry ID, Defval = "Long"
LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
Comment (string) : Is The Order Comment, Defval = Long Entry Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
OpenShort(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue)
Open A Short Order Based On The Given Params
Parameters:
EntryID (string) : Is The Trade Entry ID, Defval = "Short"
LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
Comment (string) : Is The Order Comment, Defval = Short Entry Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
TP_SLExit(FromID, TPLevel, SLLevel, PercentageClose, Comment, CommentValue)
Exits Based On Predetermined TP & SL Levels
Parameters:
FromID (string) : Is The Trade ID That The TP & SL Levels Be Palced
TPLevel (float) : Is The Take Profit Level
SLLevel (float) : Is The StopLoss Level
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
CloseLong(ExitID, PercentageClose, Comment, CommentValue, Instant)
Exits A Long Order Based On A Specified Condition
Parameters:
ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Long"
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Instant (bool) : Is For Exit Execution Type, Defval = false
Returns: Void
CloseShort(ExitID, PercentageClose, Comment, CommentValue, Instant)
Exits A Short Order Based On A Specified Condition
Parameters:
ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Short"
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Instant (bool) : Is For Exit Execution Type, Defval = false
Returns: Void
BrokerCheck(Broker)
Checks Traded Broker With Current Loaded Chart Broker
Parameters:
Broker (string) : Is The Current Broker That Is Traded
Returns: Bool - True If Current Traded Broker Is Same As Loaded Chart Broker
OpenPC(LicenseID, OrderType, UseLimit, LimitPrice, SymbolPrefix, Symbol, SymbolSuffix, Risk, SL, TP, OrderComment, Spread)
Compiles Given Parameters Into An Alert String Format To Open Trades Using Pine Connector
Parameters:
LicenseID (string) : Is The Users PineConnector LicenseID
OrderType (int) : Is The Desired OrderType To Open
UseLimit (bool) : Is If We Want To Enter The Position At Exactly The Previous Closing Price
LimitPrice (float) : Is The Limit Price Of The Trade (Only For Pending Orders)
SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
Symbol (string) : Is The Traded Symbol
SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
Risk (float) : Is The Trade Risk Per Trade / Fixed Lot Sizing
SL (float) : Is The Trade SL In Price / In Pips
TP (float) : Is The Trade TP In Price / In Pips
OrderComment (string) : Is The Executed Trade Comment
Spread (float) : is The Maximum Spread For Execution
Returns: String - Pine Connector Order Syntax Alert Message
ClosePC(LicenseID, OrderType, SymbolPrefix, Symbol, SymbolSuffix)
Compiles Given Parameters Into An Alert String Format To Close Trades Using Pine Connector
Parameters:
LicenseID (string) : Is The Users PineConnector LicenseID
OrderType (int) : Is The Desired OrderType To Close
SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
Symbol (string) : Is The Traded Symbol
SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
Returns: String - Pine Connector Order Syntax Alert Message
//====================================================================================================================================================
// Custom Backtesting Calculation Functions
//====================================================================================================================================================
CalculatePNL(EntryPrice, ExitPrice, LotSize, ConversionRate)
Calculates Trade PNL Based On Entry, Eixt & Lot Size
Parameters:
EntryPrice (float) : Is The Trade Entry
ExitPrice (float) : Is The Trade Exit
LotSize (float) : Is The Trade Sizing
ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
Returns: Float - The Current Trade PNL
UpdateBalance(PrevBalance, PNL)
Updates The Previous Ginve Balance To The Next PNL
Parameters:
PrevBalance (float) : Is The Previous Balance To Be Updated
PNL (float) : Is The Current Trade PNL To Be Added
Returns: Float - The Current Updated PNL
CalculateSlpComm(PNL, MaxRate)
Calculates Random Slippage & Commisions Fees Based On The Parameters
Parameters:
PNL (float) : Is The Current Trade PNL
MaxRate (float) : Is The Upper Limit (In Percentage) Of The Randomized Fee
Returns: Float - A Percentage Fee Of The Current Trade PNL
UpdateDD(MaxBalance, Balance)
Calculates & Updates The DD Based On Its Given Parameters
Parameters:
MaxBalance (float) : Is The Maximum Balance Ever Recorded
Balance (float) : Is The Current Account Balance
Returns: Float - The Current Strategy DD
CalculateWR(TotalTrades, LongID, ShortID)
Calculate The Total, Long & Short Trades Win Rate
Parameters:
TotalTrades (int) : Are The Current Total Trades That The Strategy Has Taken
LongID (string) : Is The Order ID Of The Long Trades Of The Strategy
ShortID (string) : Is The Order ID Of The Short Trades Of The Strategy
Returns: Tuple Of Long WR%, Short WR%, Total WR%, Total Winning Trades, Total Losing Trades, Total Long Trades & Total Short Trades
CalculateAvgRRR(WinTrades, LossTrades)
Calculates The Overall Strategy Avg Risk Reward Ratio
Parameters:
WinTrades (int) : Are The Strategy Winning Trades
LossTrades (int) : Are The Strategy Losing Trades
Returns: Float - The Average RRR Values
CAGR(StartTime, StartPrice, EndTime, EndPrice)
Calculates The CAGR Over The Given Time Period © TradingView
Parameters:
StartTime (int) : Is The Starting Time Of The Calculation
StartPrice (float) : Is The Starting Price Of The Calculation
EndTime (int) : Is The Ending Time Of The Calculation
EndPrice (float) : Is The Ending Price Of The Calculation
Returns: Float - The CAGR Values
//====================================================================================================================================================
// Custom Plot Functions
//====================================================================================================================================================
EditLabels(LabelID, X1, Y1, Text, Color, TextColor, EditCondition, DeleteCondition)
Edit / Delete Labels
Parameters:
LabelID (label) : Is The ID Of The Selected Label
X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
Text (string) : Is The Text Than Wants To Be Written In The Label
Color (color) : Is The Color Value Change Of The Label Text
TextColor (color)
EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
Returns: Void
EditLine(LineID, X1, Y1, X2, Y2, Color, EditCondition, DeleteCondition)
Edit / Delete Lines
Parameters:
LineID (line) : Is The ID Of The Selected Line
X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
X2 (int) : Is The X2 Coordinate IN BARINDEX Xloc
Y2 (float) : Is The Y2 Coordinate IN PRICE Yloc
Color (color) : Is The Color Value Change Of The Line
EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
Returns: Void
//====================================================================================================================================================
// Custom Display Functions (Using Tables)
//====================================================================================================================================================
FillTable(TableID, Column, Row, Title, Value, BgColor, TextColor, ToolTip)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
Column (int) : Is The Current Column Of The Table That Wants To Be Edited
Row (int) : Is The Current Row Of The Table That Wants To Be Edited
Title (string) : Is The String Title Of The Current Cell Table
Value (string) : Is The String Value Of The Current Cell Table
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
ToolTip (string) : Is The ToolTip Of The Current Cell In The Table
Returns: Void
DisplayBTResults(TableID, BgColor, TextColor, StartingBalance, Balance, DollarReturn, TotalPips, MaxDD)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
StartingBalance (float) : Is The Account Starting Balance
Balance (float)
DollarReturn (float) : Is The Account Dollar Reture
TotalPips (float) : Is The Total Pips Gained / loss
MaxDD (float) : Is The Maximum Drawdown Over The Backtesting Period
Returns: Void
DisplayBTResultsV2(TableID, BgColor, TextColor, TotalWR, QTCount, LongWR, ShortWR, InitialCapital, CumProfit, CumFee, AvgRRR, MaxDD, CAGR, MeanDD)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
TotalWR (float) : Is The Strategy Total WR In %
QTCount (int) : Is The Strategy Questionable Trades Count
LongWR (float) : Is The Strategy Total WR In %
ShortWR (float) : Is The Strategy Total WR In %
InitialCapital (float) : Is The Strategy Initial Starting Capital
CumProfit (float) : Is The Strategy Ending Cumulative Profit
CumFee (float) : Is The Strategy Ending Cumulative Fee (Based On Randomized Fee Assumptions)
AvgRRR (float) : Is The Strategy Average Risk Reward Ratio
MaxDD (float) : Is The Strategy Maximum DrawDown In Its Backtesting Period
CAGR (float) : Is The Strategy Compounded Average GRowth In %
MeanDD (float) : Is The Strategy Mean / Average Drawdown In The Backtesting Period
Returns: Void
//====================================================================================================================================================
// Custom Pattern Detection Functions
//====================================================================================================================================================
BullFib(priceLow, priceHigh, fibRatio)
Calculates A Bullish Fibonacci Value (From Swing Low To High) © ZenAndTheArtOfTrading
Parameters:
priceLow (float)
priceHigh (float)
fibRatio (float)
Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
BearFib(priceLow, priceHigh, fibRatio)
Calculates A Bearish Fibonacci Value (From Swing High To Low) © ZenAndTheArtOfTrading
Parameters:
priceLow (float)
priceHigh (float)
fibRatio (float)
Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
GetBodySize()
Gets The Current Candle Body Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Body Size IN POINTS
GetTopWickSize()
Gets The Current Candle Top Wick Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Top Wick Size IN POINTS
GetBottomWickSize()
Gets The Current Candle Bottom Wick Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Bottom Wick Size IN POINTS
GetBodyPercent()
Gets The Current Candle Body Size As A Percentage Of Its Entire Size Including Its Wicks © ZenAndTheArtOfTrading
Returns: The Current Candle Body Size IN PERCENTAGE
GetTopWickPercent()
Gets The Current Top Wick Size As A Percentage Of Its Entire Body Size
Returns: Float - The Current Candle Top Wick Size IN PERCENTAGE
GetBottomWickPercent()
Gets The Current Bottom Wick Size As A Percentage Of Its Entire Bodu Size
Returns: Float - The Current Candle Bottom Size IN PERCENTAGE
BullishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Engulfing Candle
Parameters:
Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Engulfing Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Engulfing Candle
BearishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bearish Engulfing Candle
Parameters:
Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Engulfing Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Engulfing Candle
Hammer(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod)
Checks If The Current Bar Is A Hammer Candle
Parameters:
Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
Star(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod)
Checks If The Current Bar Is A Hammer Candle
Parameters:
Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
Doji(MaxWickSize, MaxBodySize, DojiType, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Doji Candle
Parameters:
MaxWickSize (float) : To Specify The Maximum Lenght Of Its Upper & Lower Wick, Defval = 2
MaxBodySize (float) : To Specify The Maximum Lenght Of Its Candle Body IN PERCENT, Defval = 0.05
DojiType (int)
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Doji Candle
BullishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Harami Candle
Parameters:
Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Harami Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Harami Candle
BearishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Harami Candle
Parameters:
Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Harami Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Harami Candle
//====================================================================================================================================================
// Custom Time Functions
//====================================================================================================================================================
BarInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session © ZenAndTheArtOfTrading
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls within the given time session
BarOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session © ZenAndTheArtOfTrading
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls outside the given time session
DateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range © ZenAndTheArtOfTrading
Parameters:
startTime (int)
endTime (int)
Returns: A boolean - true if the current bar falls within the given dates
DayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze © ZenAndTheArtOfTrading
Parameters:
monday (bool)
tuesday (bool)
wednesday (bool)
thursday (bool)
friday (bool)
saturday (bool)
sunday (bool)
Returns: A boolean - true if the current bar's day is one of the given days
AUSSess()
Checks If The Current Australian Forex Session In Running
Returns: Bool - True If Currently The Australian Session Is Running
ASIASess()
Checks If The Current Asian Forex Session In Running
Returns: Bool - True If Currently The Asian Session Is Running
EURSess()
Checks If The Current European Forex Session In Running
Returns: Bool - True If Currently The European Session Is Running
USSess()
Checks If The Current US Forex Session In Running
Returns: Bool - True If Currently The US Session Is Running
UNIXToDate(Time, ConversionType, TimeZone)
Converts UNIX Time To Datetime
Parameters:
Time (int) : Is The UNIX Time Input
ConversionType (int) : Is The Datetime Output Format, Defval = DD-MM-YYYY
TimeZone (string) : Is To Convert The Outputed Datetime Into The Specified Time Zone, Defval = Exchange Time Zone
Returns: String - String Of Datetime
Поиск скриптов по запросу "Trailing stop"
D-Bot Alpha RSI Breakout StrategyHello dear Traders,
Here is a simple yet effective strategy to use, for best profit higher time frame, such as daily.
Structure of the code
The code defines inputs for SMA (simple moving average) length, RSI (relative strength index) length, RSI entry level, RSI stop loss level, and RSI take profit level. The default values of these variables can be customized as per the user's preferences.
The script calculates SMA and RSI based on the input parameters and the closing price of the asset.
Trading logic
This strategy allows the placement of a long position when:
The RSI crosses above the RSI entry level and
The close price is above the SMA value.
After entering a long position, it applies a trailing stop mechanism. The stop price is updated to the close price if the close price is lower than the last close price.
The script closes the long position when:
RSI falls below the stop loss level.
RSI reaches or exceeds the take profit level.
If the trailing stop is activated (once RSI reaches or exceeds the take profit level), the closing price falls below the trailing stop level.
Strengths
The strategy includes mechanisms for entering a position, taking profit, and stopping losses, which are fundamental aspects of a trading strategy.
It applies a trailing stop mechanism that allows to capture further gains if the price keeps increasing while protecting from losses if the price starts to decrease.
Weaknesses
This strategy only contemplates long positions. Depending on the market situation, the strategy may miss opportunities for short selling when the market is on a downward trend.
The choice of the fixed RSI entry, stop loss, and take profit levels may not be ideal for all market conditions or assets. It might benefit from a more adaptive mechanism that adjusts these levels according to market volatility or trend.
The strategy doesn't factor in trading costs (such as spread or commission), which could have a significant impact on the net profit, especially if the user is trading with a high frequency or in a low liquidity market.
How to trade with this strategy
Given these parameters and the strategy outlined by the code, the trader would enter a long position when the RSI crosses above the RSI entry level (default 34) and the closing price is above the SMA value (SMA calculated with default period of 200). The trader would exit the position when either the RSI falls below the RSI stop loss level (default 30), or RSI rises above the RSI take profit level (default 50), or when the trailing stop is hit.
Remember "The strategies I have prepared are entirely for educational purposes and should not be considered as investment advice. Support your trades using other tools. Wishing everyone profitable trades..."
Limit Order + ATR Stop-Loss [TANHEF]This indicator enables interactive placement of limit or stop-limit orders with a trailing ATR stop-loss and optional profit target (with alerts). Refer to the images below for further clarification.
Why use a trailing stop-loss?
A trailing stop-loss serves as an exit strategy when price moves against you, while also allowing you to adjust the exit point further into profit when price moves favorably. The ATR (Average True Range), a reliable measure of volatility, acts as an effective risk management tool, functioning as a trailing stop-loss.
Indicator Explanation
Initial indicator placement: Select Long Limit or Long-Stop Limit order.
Change Entry Type: Switch between Long and Short within settings.
Modify entry price: Drag circle, adjust in settings, or re-add indicator to chart.
Optional Profit Target: Use Risk/Reward ratio or specify price.
Entry anticipation: Estimated ATR stop-loss and profit target as blue circles (fluctuates with volatility changes).
Entry triggered: Actual ATR stop-loss and profit target plotted.
Exit conditions: Stop-loss or profit target hit, exit entry.
Update Frequency: Continuously, Bar Open, or Bar Open on entry then continuously.
ATR Overlap: no entry occurs if the ATR overlaps with price (stop-loss 'hit' already on entry bar)
Table: Displays input settings selected.
Show Only On Ticker: Ability to hide indicator on other tickers.
Long Limit
Long Stop-Limit
Short Limit
Short Stop-Limit
Alerts
1. 'Check' alerts to use within indicator settings (entry, trailing stop hit, profit target hit, and failed entry).
2. Select 'Create Alert'
3. Set the condition to 'Limit Order + ATR Stop-Loss''
4. Select create.
Additional details can be added to the alert message using these words in between Curly (Brace) Brackets:
{{trail}} = ATR trailing stop-loss (price)
{{target}} = Price target (price)
{{type}} = Long or Short stop-loss (word)
{{traildistance}} = Trailing Distance (%)
{{targetdistance}} = Target Distance (%)
{{starttime}} = Start time of position (day:hr:min)
{{maxdrawdown}} = max loss
{{maxprofit}} = max profit
{{update}} = stoploss update frequency
{{entrysource}} = entry as 1st bar source (yes/no)
{{triggerentry}} = Wick/Close Trigger entry input
{{triggerexit}} = Wick/Close Trigger exit input
{{triggertarget}} = Wick/Close Trigger target input
{{atrlength}} = ATR length input
{{atrmultiplier}} = ATR multiplier input
{{atrtype}} = ATR type input
{{ticker}} = Ticker of chart (word)
{{exchange}} = Exchange of chart (word)
{{description}} = Description of ticker (words)
{{close}} = Bar close (price)
{{open}} = Bar open (price)
{{high}} = Bar high (price)
{{low}} = Bar low (price)
{{hl2}} = Bar HL2 (price)
{{volume}} = Bar volume (value)
{{time}} = Current time (day:hr:min)
{{interval}} = Chart timeframe
{{newline}} = New line for text
TradeTrackerLibrary "TradeTracker"
Simple Library for tracking trades
method track(this)
tracks trade when called on every bar
Namespace types: Trade
Parameters:
this (Trade) : Trade object
Returns: current Trade object
Trade
Has the constituents to track trades generated by any method.
Fields:
id (series int)
direction (series int) : Trade direction. Positive values for long and negative values for short trades
initialEntry (series float) : Initial entry price. This value will not change even if the entry is changed in the lifecycle of the trade
entry (series float) : Updated entry price. Allows variations to initial calculated entry. Useful in cases of trailing entry.
initialStop (series float) : Initial stop. Similar to initial entry, this is the first calculated stop for the lifecycle of trade.
stop (series float) : Trailing Stop. If there is no trailing, the value will be same as that of initial trade
targets (float ) : array of target values.
startBar (series int) : bar index of starting bar. Set by default when object is created. No need to alter this after that.
endBar (series int) : bar index of last bar in trade. Set by tracker on each execution
startTime (series int) : time of the start bar. Set by default when object is created. No need to alter this after that.
endTime (series int) : time of the ending bar. Updated by tracking method.
status (series int) : Integer parameter to track the status of the trade
retest (series bool) : Boolean parameter to notify if there was retest of the entry price
Three-Day Rolling PivotThe three-day rolling pivot is another pivot concept,
which may be used by intermediate positions, for several days or even weeks.
It can be utilized in many ways, such as to determine an entry point or trailing stop.
As the name suggests, this pivot is based on the last three days.
I learned this concept of the book "The logical Trader" by Mark Fisher.
Kudos go to him!
My version of the Three-Day Rolling Pivot uses actual data!
And all similar scripts I have found so far calculate future data and don't take into account the original data.
I hope this script will help some people to do some better decisions.
And I am pleased to get some advice to make this script even better!
Future data vs original data
Pine Script v5 Reference Manual:
Merge strategy for the requested data position... This merge strategy can lead to undesirable effect of getting data from "future" on calculation on history. This is unacceptable in backtesting strategies, but can be useful in indicators.
e2e4 on Stack Overflow said:
Pine v1-v2's security() function is using the lookahead parameter by default, which could be modified in v3-v5...
stackoverflow.com
I haven't found a script which put this into account jet.
I leave this option available for people that wanna more speculated data. But it's disabled by default.
Long/Short Example
You can enter Long when the market cross over the upper line (default color is green) and you should put your trailing stop 1-5 ticks below the lower line (default color is red).
The opposite when Shorting, then the market has to cross down the lower line and your trailing stop should be 1-5 ticks above the upper line.
How does this script work:
First it fetches the highest high of ...
yesterday,
the day before yesterday,
and the day before that.
After that the script looks for the highest high of all three.
Next it does the same for previous lowest low.
Last but not least, it fetches the closing price of the last day.
After that it adds all three prices together and divide them by three.
This result in a three day pivot price.
Then it adds the highest high and lowest low of the three last days and divide it by two.
This gives us the second number we need to calculate the differential.
The differential is the gap between the three day pivot price and the second number.
Sometimes the second number is bigger than the three day pivot price so I took that into account too. Other wise the colors plotted would be on the wrong site.
Finally, the script is rounding the numbers to the nearest minimum tick of that security.
MA Simple Strategy with SL & TP & ATR FiltersHello Guys! Nice to meet you all!
This is my second script!
This Logic is trend following logic, This detects long & short trends by comparing the value of MAs.
This fits to the longer time frame.
### Long Condition
1. Compare 4 MAs (you can chose MA Type)
- Shortest MA (MA 1)
- Shorter MA (MA 2)
- Normal MA (MA 3)
- Longer MA (MA 4)
2. If MA 1 > MA 2 > MA 3 > MA 4, then Enter Long Position
- ‘The arrangement of MAs in descending orders’ is the proxy of the long trend.
### Short Condition
1. Compare 4 MAs (you can chose MA Type)
- Shortest MA (MA 1)
- Shorter MA (MA 2)
- Normal MA (MA 3)
- Longer MA (MA 4)
2. If MA 1 < MA 2 < MA 3 < MA 4, then Enter Short Position
- ‘The arrangement of MAs in ascending orders’ is the proxy of the short trend.
### Close Condition
1. When trend Changes
- When (MA 1 > MA 2 > MA 3 > MA 4) breaks or (MA 1 < MA 2 < MA 3 < MA 4) breaks.
2. When the price hits the stoploss
3. When the price hits the take profit level (basically 50% of qty will be closed)
### Etc
1. Trend filter (ATR should be bigger than SMA of ATR)
- If the volatility of price is to small (ATR), then there could be false signal. To filter this out, I used the condition ‘ATR should be larger than SMA of ATR’.
2. Stoploss
- Enabled Stoploss based on ATR, Percent, Risk-Reward Ratio,
- Enabled Trailing Stoploss.
3. Choose MA Type
- You can choose MA Type
+ Thanks for the stoploss template @jason5480
6 Multi-Timeframe Supertrend with Heikin Ashi as Source
This is a multiple multi-timeframe version of famous supertrernd only with Heikin Ashi as source. Atr which stands in the heart of supertrend is calculated based on heikin-ashi bars which omits a great deal of noises.
with 6 multiplication of the supertrend, its simply much easier to spot trend direction or use it as trailing stop with several levels available.
this is a great tool to assess and manage your risk and calculate your position volume if you use the heikin ashi supertrend as your stoploss.
Customizable Non-Repainting HTF MACD MFI Scalper Bot Strategy v2Customizable Non-Repainting HTF MACD MFI Scalper Bot Strategy v2
This script was originally shared by Wunderbit as a free open source script for the community to work with. This is my second published iteration of this idea.
WHAT THIS SCRIPT DOES:
It is intended for use on an algorithmic bot trading platform but can be used for scalping and manual trading.
This strategy is based on the trend-following momentum indicator . It includes the Money Flow index as an additional point for entry.
This is a new and improved version geared for lower timeframes (15-5 minutes), but can be run on larger ones as well. I am testing it live as my high frequency trader.
HOW IT DOES IT:
It uses a combination of MACD and MFI indicators to create entry signals. Parameters for each indicator have been surfaced for user configurability.
Take profits are now trailing profits, and the stop loss is now fixed. Why? I found that the trailing stop loss with ATR in the previous version yields very good results for back tests but becomes very difficult to deploy live due to transaction fees. As you can see the average trade is a higher profit percentage than the previous version.
HOW IS MY VERSION ORIGINAL:
Now instead of using ATR stop loss, we have a fixed stop loss - counter intuitively to what some may believe this performs better in live trading scenarios since it gives the strategy room to move. I noticed that the ATR trailing stop was stopping out too fast and was eating away balance due to transaction fees.
The take profit on the other hand is now a trailing profit with a customizable deviation. This ensures that you can have a minimum profit you want to take in order to exit.
I have depracated the old ATR trailing stop as it became too confusing to have those as different options. I kept the old version for others that want to experiment with it. The source code still requires some cleanup, but its fully functional.
I added in a way to show RSI values and ATR values with a checkbox so that you can use the new an improved ATR Filter (and grab the right RSI values for the RSI filter). This will help to filter out times of very low volatility where we are unlikely to find a profitable trade. Use the "Show Data" checkbox to see what the values are on the indicator pane, then use those values to gauge what you want to filter out.
Both versions
Delayed Signals : The script has been refactored to use a time frame drop down. The higher time frame can be run on a faster chart (recommended on one minute chart for fastest signal confirmation and relay to algotrading platform.)
Repainting Issues : All indicators have been recoded to use the security function that checks to see if the current calculation is in realtime, if it is, then it uses the previous bar for calculation. If you are still experiencing repainting issues based on intended (or non intended use), please provide a report with screenshot and explanation so I can try to address.
Filtering : I have added to additional filters an ABOVE EMA Filter and a BELOW RSI Filter (both can be turned on and off)
Customizable Long and Close Messages : This allows someone to use the script for algorithmic trading without having to alter code. It also means you can use one indicator for all of your different alterts required for your bots.
HOW TO USE IT:
It is intended to be used in the 5-30 minute time frames, but you might be able to get a good configuration for higher time frames. I welcome feedback from other users on what they have found.
Find a pair with high volatility (example KUCOIN:ETH3LUSDT ) - I have found it works particularly well with 3L and 3S tokens for crypto. although it the limitation is that confrigurations I have found to work typically have low R/R ratio, but very high win rate and profit factor.
Ideally set one minute chart for bots, but you can use other charts for manual trading. The signal will be delayed by one bar but I have found configurations that still test well.
Select a time frame in configuration for your indicator calculations.
Select the strategy config for time frame (resolution). I like to use 5 and 15 minutes for scalping scenarios, but I am interested in hearing back from other community memebers.
Optimize your indicator without filters : customize your settings for MACD and MFI that are profitable with your chart and selected time frame calculation. Try different Take Profits (try about 2-5%) and stop loss (try about 5-8%). See if your back test is profitable and continue to optimize.
Use the Trend, RSI, ATR Filter to further refine your signals for entry. You will get less entries but you can increase your win ratio.
You can use the open and close messages for a platform integration, but I choose to set mine up on the destination platform and let the platform close it. With certain platforms you cannot be sure what your entry point actually was compared to Trading View due to slippage and timing, so I let the platform decide when it is actually profitable.
Limitations: this works rather well for short term, and does some good forward testing but back testing large data sets is a problem when switching from very small time frame to large time frame. For instance, finding a configuration that works on a one minute chart but then changing to a 1 hour chart means you lose some of your intra bar calclulations. There are some new features in pine script which might be able to address, this, but I have not had a chance to work on that issue.
Bjorgum AutoTrailOne Time Trade Risk Management
Incorporating the new interactive feature, this script is meant as a one time trailing stop for the active trader to manage positional risk of an ongoing trade. As a crypto trader or Fx trader, many may find themselves in a position late into the evening, or perhaps daily life is calling while a trade progresses in their favor. Adding a trailing stop to a position thats trending can help to keep you in the trade and lock in gains if things turn around when you are unable to react.
To use the trail, the user would add the script to the chart. Once added, a set of crosshairs will appear allowing the user to choose a point to begin. Often choosing to start a trail from a swing high/ low can be an ideal option. This tends to provide some protection for a stop by placing it under support for a long trade or above resistance for a short trade.
Price based trail
The trail will automatically plot and the offset is a factor of the distance from price action selected by the crosshairs. If placed above price action the script will plot a short trail, if placed below it will trail for a long position.
Additionally, there are several other trail types other than price based. There is also percent based, which offsets the trail as a percent from close. A hard stop is placed at the cross hair value, then once the distance is exceeded by the percentage specified, the trail begins.
There are 2 more volatility based trails. There is a PSAR trail which can provide quicker and tighter stops that accelerate with the trend locking in gains faster, and an ATR trail that keeps a distance from price action as a function of volatility. Volatility levels can be adjusted from the menu.
Volatility based trail (ATR)
Volatility based trail (PSAR)
Lastly, within the code for more the more technical savvy, is some starting setups for string alerts to be sent to exchanges via 3rd party or custom API applications. Some string manipulation is required for specific providers to meet their requirements, but there is some building block alerts that will take the ticker symbol, recognize the asset your trading (Fx, Crypto, etc) and take input quantity or exchange names from the settings via inputs.
Complex strings can be built to perform almost any trade related task when to comes to alerts via web hook. A little setup this way with some technology to back your system can mean a semi-automated half man, half machine setup that actually manages your trail stop while you cannot. For those that don’t go this far, there is some basic alert functionality that well trigger when a trail is hit so you can react and make a decision.
Please note that for now, interactive mode is engaged only when the script is added to the chart. Additional stops, or for adjustments to be made it is best to add a new version. Also as real trades could be at play managing an actual position, alerts are designed to go off only once to ensure no duplicate orders are sent meaning alerts are not reoccurring. Once an alert is triggered, a new trail is to be set up.
A modified version of the TradingView built in SAR equation was used in this script. To provide the value of the SAR on the stop candle, it was necessary to alter the equation to extract this value as the regular SAR “flips” at this point. Thank you to TradingView for supplying access to the built in formula so that this SAR could behave the same as the built-in function outside of these alterations
Example of SAR value maintained in trigger candle
Cheers and happy trading.
Zignaly TutorialThis strategy serves as a beginner's guide to connect TradingView signals to Zignaly Crypto Trading Platform.
It was originally tested at BTCUSDT pair and 1D timeframe.
Before using this documentation it's recommended that you:
Use default TradingView strategy script or another script and setup its associated alert manually. Just make the alert pop-up in the screen.
Create a 'Copy-Trader provider' (or Signal Provider) in Zignaly and send signals to it either thanks to your browser or with some basic programming.
SETTINGS
__ SETTINGS - Capital
(CAPITAL) Capital quote invested per order in USDT units {100.0}. This setting is only used when '(ZIG) Provider type' is set to 'Signal Provider'.
(CAPITAL) Capital percentage invested per order (%) {25.0}. This setting is only used when '(ZIG) Provider type' is set to 'Copy Trader Provider'.
__ SETTINGS - Misc
(ZIG) Enable Alert message {True}: Whether to enable alert message or not.
(DEBUG) Enable debug on order comments {True}: Whether to show alerts on order comments or not.
Number of decimal digits for Prices {2}.
(DECIMAL) Maximum number of decimal for contracts {3}.
__ SETTINGS - Zignaly
(ZIG) Integration type {TradingView only}: Hybrid : Both TradingView and Zignaly handle take profit, trailing stops and stop losses. Useful if you are scared about TradingView not firing an alert. It might arise problems if TradingView and Zignaly get out of sync. TradingView only : TradingView sends entry and exit orders to Zignaly so that Zignaly only buys or sells. Zignaly won't handle stop loss or other settings on its own.
(ZIG) Zignaly Alert Type {WebHook}: 'Email' or 'WebHook'.
(ZIG) Provider type {Copy Trader Provider}: 'Copy Trader Provider' or 'Signal Provider'. 'Copy Trader Provider' sends a percentage to manage. 'Signal Provider' sends a quote to manage.
(ZIG) Exchange: 'Binance' or 'Kucoin'.
(ZIG) Exchange Type {Spot}: 'Spot' or 'Futures'.
(ZIG) Leverage {1}. Set it to '1' when '(ZIG) Exchange Type' is set to 'Spot'.
__ SETTINGS - Strategy
(STRAT) Strategy Type: 'Long and Short', 'Long Only' or 'Short Only'.
(STOPTAKE) Take Profit? {false}: Whether to enable Take Profit.
(STOPTAKE) Stop Loss? {True}: Whether to enable Stop Loss.
(TRAILING) Enable Trailing Take Profit (%) {True}: Whether to enable Trailing Take Profit.
(STOPTAKE) Take Profit % {3.0}: Take profit percentage. This setting is only used when '(STOPTAKE) Take Profit?' setting is set to true.
(STOPTAKE) Stop Loss % {2.0}: Stop loss percentage. This setting is only used when '(STOPTAKE) Stop Loss?' setting is set to true.
(TRAILING) Trailing Take Profit Trigger (%) {2.5}: Trailing Stop Trigger Percentage. This setting is only used when '(TRAILING) Enable Trailing Take Profit (%)' setting is set to true.
(TRAILING) Trailing Take Profit as a percentage of Trailing Take Profit Trigger (%) {25.0}: Trailing Stop Distance Percentage. This setting is only used when '(TRAILING) Enable Trailing Take Profit (%)' setting is set to true.
(RECENT) Number of minutes to wait to open a new order after the previous one has been opened {6}.
DEFAULT SETTINGS
By default this strategy has been setup with these beginner settings:
'(ZIG) Integration type' : TradingView only
'(ZIG) Provider type' : 'Copy Trader Provider'
'(ZIG) Exchange' : 'Binance'
'(ZIG) Exchange Type' : 'Spot'
'(STRAT) Strategy Type' : 'Long Only'
'(ZIG) Leverage' : '1' (Or no leverage)
but you can change those settings if needed.
FIRST STEP
For both future of spot markets you should make sure to change '(ZIG) Zignaly Alert Type' to match either WebHook or Email. If you have a non paid account in TradingView as in October 2020 you would have to use Email which it's free to use.
RECOMMENDED SETTINGS
__ RECOMMENDED SETTINGS - Spot markets
'(ZIG) Exchange Type' setting should be set to 'Spot'
'(STRAT) Strategy Type' setting should be set to 'Long Only'
'(ZIG) Leverage' setting should be set to '1'
__ RECOMMENDED SETTINGS - Future markets
'(ZIG) Exchange Type' setting should be set to 'Futures'
'(STRAT) Strategy Type' setting should be set to 'Long and Short'
'(ZIG) Leverage' setting might be changed if desired.
__ RECOMMENDED SETTINGS - Signal Providers
'(ZIG) Provider type' setting should be set to 'Signal Provider'
'(CAPITAL) Capital quote invested per order in USDT units' setting might be changed if desired.
__ RECOMMENDED SETTINGS - Copy Trader Providers
'(ZIG) Provider type' setting should be set to 'Copy Trader Provider'
'(CAPITAL) Capital percentage invested per order (%)' setting might be changed if desired.
Strategy Properties setting: 'Initial Capital' might be changed if desired.
INTEGRATION TYPE EXPLANATION
'Hybrid': Both TradingView and Zignaly handle take profit, trailing stops and stop losses. Useful if you are scared about TradingView not firing an alert. It might arise problems if TradingView and Zignaly get out of sync.
'TradingView only': TradingView sends entry and exit orders to Zignaly so that Zignaly only buys or sells. Zignaly won't handle stop loss or other settings on its own.
HOW TO USE THIS STRATEGY
Beginner: Copy and paste the strategy and change it to your needs. Turn off '(DEBUG) Enable debug on order comments' setting.
Medium: Reuse functions and inputs from this strategy into your own as if it was a library.
Advanced: Check Strategy Tester. List of trades. Copy and paste the different suggested 'alert_message' variable contents to your script.
Expert: I needed a way to pass data from TradingView script to the alert. Now I know it's the 'alert_message' variable. I can do this own my own.
ALERTS SETUP
This is the important piece of information that allows you to connect TradingView to Zignaly in a semi-automatic manner.
__ ALERTS SETUP - WebHook
Webhook URL: https : // zignaly . com / api / signals.php?key=MYSECRETKEY
Message: { {{strategy.order.alert_message}} , "key" : "MYSECRETKEY" }
__ ALERTS SETUP - Email
Setup a new Hotmail account
Add it as an 'SMS email' in TradingView Profile settings page.
Confirm your own the email address
Create a rule in your Hotmail account that 'Redirects' (not forwards) emails to 'signals @ zignaly . email' when (1): 'Subject' includes 'Alert', (2): 'Email body' contains string 'MYZIGNALYREDIRECTTRIGGER' and (3): 'From' contains 'noreply @ tradingview . com'.
In 'More Actions' check: Send Email-to-SMS
Message: ||{{strategy.order.alert_message}}||key=MYSECRETKEY||
MYZIGNALYREDIRECTTRIGGER
'(DEBUG) Enable debug on order comments' is turned on by default so that you can see in the Strategy Tester. List of Trades. The different orders alert_message that would have been sent to your alert. You might want to turn it off it some many letters in the screen is problem.
STRATEGY ADVICE
If you turn on 'Take Profit' then turn off 'Trailing Take Profit'.
ZIGNALY SIDE ADVICE
If you are a 'Signal Provider' make sure that 'Allow reusing the same signalId if there isn't any open position using it?' setting in the profile tab is set to true.
You can find your 'MYSECRETKEY' in your 'Copy Trader/Signal' provider Edit tab at 'Signal URL'.
ADDITIONAL ZIGNALY DOCUMENTATION
docs . zignaly . com / signals / how-to -- How to send signals to Zignaly
3 Ways to send signals to Zignaly
SIGNALS
FINAL REMARKS
This strategy tries to match the Pine Script Coding Conventions as best as possible.
A.I.Driven Aggressive Intraday Models For 20190610(New to TradingView and trying to learn how best to share our daily Model Trades with the awesome community here. Still learning the tools here and may not be using the best approaches to publish ideas/charts/scirpts - please help us learn by suggesting best practices)
>>>>> Model Trades Published pre-market this morning at tradersai blogspot <<<<<
***** Medium-Frequency Models*****: For today, Monday 06/10, our medium-frequency models indicate going long on a break above 2903 with a 10-point trailing stop, and going short on a break below 2845 with an 8-point trailing stop.
---Note: For the trades to trigger, the breaks should occur during the regular session hours starting at 9:30am ET. By design, these models do NOT open any new positions after 3:45pm. Only one open position at any given time.---
***** Aggressive Intraday Models *****: For today, Monday 06/10, our aggressive intraday models indicate going long on a break above 2895 or 2886 or 2874 with an 8-point trailing stop, and going short on a break below 2890 or 2882 or 2870 with a 6-point trailing stop.
---- Note: For the trades to trigger, the breaks should occur during regular session hours starting at 9:30am ET. Due to the intraday nature of these aggressive models, they indicate closing any open trades at 3:55pm and remaining flat into the session close. No opening of new positions after 3:45pm. Only one open position at any given time.----
Parabolic SAR & Arnoud Legoux Moving Avarage StrategyIn the first short signal example, after price closes below the ALMA and the parabolic SAR plots above the price high, sell signal is opened with the stops trailed to the PSAR values until the trade is stopped out.
Similarly, you can see a long position where price cuts above the ALMA and the Parabolic SAR plots below the price low. Using these values as the trailing stop levels, we can stay long into the trade until the trade is stopped out.
Find out optimal values by trying. May not produce accurate results in horizontal markets. Thank you.
Sawaes StrategyHere’s a **clear TradingView-style description** you can use directly in the indicator’s **Description** field or when sharing it publicly.
---
## 📈 Sawaes Strategy – Buy & Sell Signal (SuperTrend-Based)
### 🔹 Overview
**Sawaes Strategy** is a trend-following indicator based on a **custom SuperTrend calculation** using **ATR (Average True Range)**.
It is designed to identify **trend direction**, **dynamic support/resistance**, and provide **clear buy and sell signals** when price confirms a trend change.
The indicator plots a colored trailing line on the chart and generates visual arrows for entries, making it suitable for **intraday, swing, and positional trading**.
---
### 🔹 How It Works
1. **ATR Volatility Measurement**
* Uses ATR to measure market volatility.
* The ATR value is multiplied by a user-defined **Factor** to adapt to different markets and timeframes.
2. **Dynamic Trend Lines**
* A **SuperTrend trailing stop line** is calculated above or below price.
* The line moves only in the direction of the current trend, preventing whipsaws.
3. **Trend Direction**
* 🟢 **Green line** → Uptrend (Bullish)
* 🔴 **Red line** → Downtrend (Bearish)
4. **Trend Switching**
* Trend flips when price decisively crosses the trailing stop line.
* Entry arrows appear only on confirmed trend changes.
---
### 🔹 Buy & Sell Signals
#### 🟢 Buy Signal
* Price crosses **above** the SuperTrend line
* Price closes **above** the trailing stop
* Trend changes from **bearish to bullish**
* Displayed as:
* Green **triangle up**
* Green **arrow up** on trend reversal
#### 🔴 Sell Signal
* Price crosses **below** the SuperTrend line
* Price closes **below** the trailing stop
* Trend changes from **bullish to bearish**
* Displayed as:
* Red **triangle down**
* Red **arrow down** on trend reversal
---
### 🔹 Inputs
* **Factor**
Controls sensitivity.
* Higher value → fewer signals, stronger trends
* Lower value → more signals, faster reactions
* **ATR Period**
Defines how volatility is calculated.
---
### 🔹 Best Use Cases
✔ Trending markets
✔ Index, Forex, Crypto, Stocks
✔ Works on all timeframes
✔ Can be combined with:
* Volume confirmation
* RSI / MACD
* Support & Resistance
---
### 🔹 Risk Management Tips
* Use the SuperTrend line as a **dynamic stop-loss**
* Trail stops along the colored trend line
* Avoid choppy or sideways markets
* Confirm higher-timeframe trend for better accuracy
---
### 🔹 Alerts
The indicator includes:
* 📢 Buy alert
* 📢 Sell alert
These can be used for automation or mobile notifications.
---
If you want, I can:
* Rewrite this as a **short public TradingView description**
* Add **disclaimer text**
* Convert it into a **strategy with backtesting**
* Optimize parameters for **crypto / forex / indices**
Just tell me 👍
Golden Vector Trend Orchestrator (GVTO)Golden Vector Trend Orchestrator (GVTO) is a composite trend-following strategy specifically engineered for XAUUSD (Gold) and volatile assets on H4 (4-Hour) and Daily timeframes.
This script aims to solve a common problem in trend trading: "Whipsaws in Sideways Markets." Instead of relying on a single indicator, GVTO employs a Multi-Factor Confluence System that filters out low-probability trades by requiring alignment across Trend Structure, Momentum, and Volatility.
🛠 Methodology & Logic
The strategy executes trades only when four distinct technical conditions overlap (Confluence). If any single condition is not met, the trade is filtered out to preserve capital.
1. Market Structure Filter (200 EMA)
Indicator: Exponential Moving Average (Length 200).
Logic: The 200 EMA acts as the baseline for the long-term trend regime.
Bullish Regime: Price must close above the 200 EMA.
Bearish Regime: Price must close below the 200 EMA.
Purpose: Prevents counter-trend trading against the macro direction.
2. Signal Trigger & Trailing Stop (Supertrend)
Indicator: Supertrend (ATR Length 14, Factor 3.5).
Logic: Uses Average True Range (ATR) to detect trend reversals while accounting for volatility.
Purpose: Provides the specific entry signal and acts as a dynamic trailing stop-loss to let profits run while cutting losses when the trend invalidates.
3. Volatility Gatekeeper (ADX Filter)
Indicator: Average Directional Index (Length 14).
Threshold: > 25.
Logic: A high ADX value indicates a strong trend presence, regardless of direction.
Purpose: This is the most critical filter. It prevents the strategy from entering trades during "choppy" or ranging markets (consolidation zones) where trend-following systems typically fail.
4. Momentum Confirmation (DMI)
Indicator: Directional Movement Index (DI+ and DI-).
Logic: Checks if the buying pressure (DI+) is physically stronger than selling pressure (DI-), or vice versa.
Purpose: Ensures that the price movement is backed by genuine momentum, not just a momentary price spike.
📋 How to Use This Strategy
🟢 LONG (BUY) Setup
A Buy signal is generated only when ALL of the following occur simultaneously:
Price Action: Price closes ABOVE the 200 EMA (Orange Line).
Trigger: Supertrend flips to GREEN (Bullish).
Strength: ADX is greater than 25 (Strong Trend).
Momentum: DI+ (Plus Directional Indicator) is greater than DI- (Minus).
🔴 SHORT (SELL) Setup
A Sell signal is generated only when ALL of the following occur simultaneously:
Price Action: Price closes BELOW the 200 EMA (Orange Line).
Trigger: Supertrend flips to RED (Bearish).
Strength: ADX is greater than 25 (Strong Trend).
Momentum: DI- (Minus Directional Indicator) is greater than DI+ (Plus).
🛡 Exit Strategy
Stop Loss / Take Profit: The strategy utilizes the Supertrend Line as a dynamic Trailing Stop.
Exit Long: When Supertrend turns Red.
Exit Short: When Supertrend turns Green.
Note: Traders can also use the real-time P/L Dashboard included in the script to manually secure profits based on their personal Risk:Reward ratio.
📊 Included Features
Real-Time P/L Dashboard: A table in the top-right corner displays the current trend status, ADX strength, and the Unrealized Profit/Loss % of the current active position.
Smart Labeling: Buy/Sell labels are coded to appear only on the initial entry trigger. They do not repaint and do not spam the chart if the trend continues (no pyramiding visualization).
Visual Aids: Background color changes (Green/Red) to visually represent the active trend based on the Supertrend status.
⚠️ Risk Warning & Best Practices
Asset Class: Optimized for XAUUSD (Gold) due to its high volatility nature. It also works well on Crypto (BTC, ETH) and Major Forex Pairs.
Timeframe: Highly recommended for H4 (4 Hours) or D1 (Daily). Using this on lower timeframes (M5, M15) may result in false signals due to market noise.
News Events: Automated strategies cannot predict economic news (CPI, NFP). Exercise caution or pause trading during high-impact economic releases.
Squeeze Momentum with Trend Exhaustion# Squeeze Momentum + Trend Exhaustion Indicator
## Complete User Manual
---
## Table of Contents
1. (#what-this-indicator-does)
2. (#visual-components)
3. (#market-states)
4. (#how-to-read-signals)
5. (#trading-examples)
6. (#configuration-guide)
7. (#best-practices)
---
## What This Indicator Does
This indicator combines two powerful concepts to identify complete market cycles:
### 1. Squeeze Momentum (LazyBear)
Detects **volatility compression** (consolidation) and subsequent **expansion** (breakout).
**Think of it like:** A spring being compressed, then released.
### 2. Multi-Timeframe Trend Exhaustion
Measures how far price has moved from its moving averages across multiple timeframes.
**Think of it like:** A rubber band being stretched—eventually it must snap back.
### The Complete Cycle
```
Consolidation → Breakout → Trend → Exhaustion → Reversion → Consolidation
```
This indicator shows you exactly where you are in this cycle.
---
## Visual Components
### Main Panel (Bottom)
| Element | What It Looks Like | Meaning |
|---------|-------------------|---------|
| **Colored Bars** | Green/Red histogram | Momentum strength and direction |
| **Filled Area** | Yellow/Lime/Red gradient area | Price extension from moving averages |
| **Cross at Zero** | Black/Gray/Blue cross | Squeeze state (volatility) |
| **Dashed Lines** | Horizontal red/green lines | Extension thresholds (±2σ scaled) |
---
### 1. Momentum Histogram (Colored Bars)
| Color | Direction | Meaning |
|-------|-----------|---------|
| **Bright Green** (Lime) | Up ↑ | Strong bullish momentum (increasing) |
| **Dark Green** | Up ↑ | Weak bullish momentum (decreasing) |
| **Bright Red** | Down ↓ | Strong bearish momentum (increasing) |
| **Dark Red** (Maroon) | Down ↓ | Weak bearish momentum (decreasing) |
**Key insight:** When bars change from bright to dark, momentum is fading.
---
### 2. Extension Area (Filled Gradient)
Shows how extended price is from its moving averages across 5 timeframes (5m, 15m, 1h, 4h, Daily).
| Color | Position | Meaning |
|-------|----------|---------|
| **Red** | High above zero | Severely overbought (>2σ scaled) |
| **Orange/Yellow** | Above zero | Moderately overbought |
| **Lime/Green** | Below zero | Moderately oversold |
| **Teal** | Deep below zero | Severely oversold (<-2σ scaled) |
**The area is scaled 3x** for better visibility. Actual values shown in table.
**Reading it:**
- **Area touching upper dashed line** = Price very far above averages (exhaustion territory)
- **Area touching lower dashed line** = Price very far below averages (exhaustion territory)
- **Area near zero** = Price near its averages (normal/neutral)
---
### 3. Squeeze Indicator (Cross at Zero Line)
| Color | Status | Meaning |
|-------|--------|---------|
| **Black** ⚫ | Squeeze ON | Bollinger Bands inside Keltner Channels → Low volatility, consolidation |
| **Gray** ⚪ | Squeeze OFF | Bollinger Bands outside Keltner Channels → Volatility expanding, breakout |
| **Blue** 🔵 | No Squeeze | Normal volatility conditions |
**Critical:** The transition from Black → Gray is where explosive moves begin.
---
### 4. Entry/Exit Signals
| Symbol | Type | Meaning |
|--------|------|---------|
| 🔺 **Large Green Triangle** | HC Long Entry | High Confidence long setup (Squeeze OFF + Oversold + Confluence) |
| 🔻 **Large Red Triangle** | HC Short Entry | High Confidence short setup (Squeeze OFF + Overbought + Confluence) |
| 🔺 Small green | Medium Long | Long setup without full confluence |
| 🔻 Small red | Medium Short | Short setup without full confluence |
| ✕ Orange X | Exit Long | Close long positions (exhaustion detected) |
| ✕ Teal X | Exit Short | Close short positions (exhaustion detected) |
**Trade only the LARGE triangles** for highest probability setups.
---
## Market States
The indicator identifies 7 distinct market states shown in the info table.
### State 1: 💤 CONSOLIDATION
**Conditions:**
- Squeeze: ON (black cross)
- Extension: Near zero (±1σ)
- Momentum: Contracting
**What's happening:** Price is range-bound, volatility dying down. Spring is being compressed.
**Action:** **WAIT.** Do not trade. Set alerts for Squeeze OFF.
---
### State 2: ⚡ BREAKOUT BULL / BEAR
**Conditions:**
- Squeeze: OFF (gray cross) ← **Key trigger**
- Extension: Still moderate
- Momentum: Strong directional move (bright green or red bars)
**What's happening:** Volatility explosion. Spring released. This is the start of a new trend.
**Action:** **ENTER** in direction of momentum.
- ⚡ BREAKOUT BULL → Go LONG
- ⚡ BREAKOUT BEAR → Go SHORT
**Best scenario:** Breakout from oversold/overbought levels (confluence with exhaustion indicator).
---
### State 3: ↗️ TRENDING UP / ↘️ TRENDING DOWN
**Conditions:**
- Squeeze: OFF or No Squeeze
- Extension: Growing (1σ to 2σ)
- Momentum: Sustained strong bars
**What's happening:** Trend in progress. Price moving away from averages.
**Action:** **HOLD** positions. Let winners run. Don't fight the trend.
---
### State 4: ⚠️ EXTENDED UP / DOWN
**Conditions:**
- Extension: Above 2σ threshold
- Momentum: Still strong (bright bars)
- Confluence: May be weak
**What's happening:** Price stretched but still has power. Caution zone.
**Action:** **CAUTION.** Don't enter new positions. Tighten stops on existing positions.
---
### State 5: 🔴 EXHAUSTION BULL / 🟢 EXHAUSTION BEAR
**Conditions:**
- Extension: >2σ (touching dashed lines)
- Momentum: Fading (bright bars turning dark)
- Velocity: Decreasing
- Confluence: 3/5 or better
**What's happening:** Rubber band stretched to maximum. Trend running out of energy.
**Action:** **EXIT** positions.
- 🔴 EXHAUSTION BULL → Close LONGS, consider SHORT
- 🟢 EXHAUSTION BEAR → Close SHORTS, consider LONG
**This is the highest probability reversal signal.**
---
### State 6: ➡️ TRENDING (Neutral Direction)
**Conditions:**
- Price trending but without clear momentum direction changes
**Action:** **HOLD** or wait for clearer signals.
---
### State 7: — NEUTRAL
**Conditions:**
- Extension near zero
- No squeeze
- Weak momentum
**Action:** No trade. Wait for setup.
---
## How to Read Signals
### Perfect Long Entry (High Confidence ⭐)
**Requirements (all must be true):**
1. ⚫→⚪ Squeeze just turned OFF (gray cross)
2. 📊 Momentum bars bright GREEN and rising
3. 🔻 Extension area BELOW lower dashed line (oversold)
4. ⭐ Confluence: 3/5 or more timeframes agree (shown as "🔻" in table)
**Visual:** Large green triangle appears
**What this means:** Price was oversold across multiple timeframes, consolidated, and is now breaking out upward with fresh momentum.
**Entry:** Next candle after signal
**Stop Loss:** Below recent consolidation low
**Take Profit:** When extension area crosses back above zero, or when exit signal appears
---
### Perfect Short Entry (High Confidence ⭐)
**Requirements (all must be true):**
1. ⚫→⚪ Squeeze just turned OFF (gray cross)
2. 📊 Momentum bars bright RED and falling
3. 🔺 Extension area ABOVE upper dashed line (overbought)
4. ⭐ Confluence: 3/5 or more timeframes agree (shown as "🔺" in table)
**Visual:** Large red triangle appears
**What this means:** Price was overbought across multiple timeframes, consolidated, and is now breaking down with fresh momentum.
**Entry:** Next candle after signal
**Stop Loss:** Above recent consolidation high
**Take Profit:** When extension area crosses back below zero, or when exit signal appears
---
### Exit Signals
#### Exit Long (Orange X)
**Appears when:**
- Extension area reaches upper dashed line (>2σ)
- Momentum bars turning from bright green to dark green
- Price losing upward velocity
**Action:** Close 50-100% of position. Move stop to breakeven on remainder.
#### Exit Short (Teal X)
**Appears when:**
- Extension area reaches lower dashed line (<-2σ)
- Momentum bars turning from bright red to dark red
- Price losing downward velocity
**Action:** Close 50-100% of position. Move stop to breakeven on remainder.
---
### Medium Confidence Signals (Small Triangles)
These appear when squeeze is OFF and momentum is directional, but:
- Extension is only moderate (not extreme), OR
- Confluence is weak (<3/5 timeframes)
**How to trade:**
- Use smaller position size (50% of normal)
- Tighter stops
- Only take if other factors align (support/resistance, volume, etc.)
---
## Trading Examples
### Example 1: Classic Squeeze Play into Trend
```
Step 1: CONSOLIDATION (💤)
Chart: Price moving sideways for 10-20 candles
Indicator: Black cross at zero (Squeeze ON)
Extension: Yellow/Lime area near zero line
Action: Set alert for Squeeze OFF
Step 2: BREAKOUT (⚡)
Chart: Strong green candle breaks resistance
Indicator: Cross turns GRAY (Squeeze OFF)
Bright GREEN momentum bars appear
Extension area still near zero or slightly below
Signal: Large green triangle appears
Action: ENTER LONG
Stop loss below consolidation
Target: Extension upper line
Step 3: TRENDING (↗️)
Chart: Series of higher highs and higher lows
Indicator: Momentum bars stay bright green
Extension area rising toward upper line
Area color transitions yellow → orange → red
Action: HOLD, trailing stop
Step 4: EXHAUSTION (🔴)
Chart: Price makes new high but with smaller candle
Indicator: Extension area touches upper dashed line
Momentum bars turn DARK green (weakening)
Orange X appears
Table shows "EXHAUSTION BULL"
Action: EXIT position
Book profits
Step 5: REVERSION
Chart: Price falls back toward moving averages
Indicator: Extension area shrinks back toward zero
Red momentum bars appear
Action: Wait for next setup
```
**Result:** Caught the entire trend from breakout to exhaustion.
---
### Example 2: Failed Breakout (What NOT to Trade)
```
Situation:
- Squeeze OFF (gray cross) ✓
- Momentum bars bright green ✓
- BUT extension area ABOVE upper line (already overbought) ✗
- Confluence shows 1/5 (only one timeframe agrees) ✗
Indicator: Small green triangle (medium confidence) or no triangle
What happens: Price makes small move up, then reverses
Lesson: Don't chase extended moves even if squeeze fires.
Wait for price to be on the RIGHT SIDE of the extension lines.
```
---
### Example 3: Exhaustion Reversal Trade
```
Step 1: EXTENDED (⚠️)
Chart: Strong uptrend for days
Indicator: Extension area deep in red zone (>2σ)
Momentum still bright green but starting to shorten
Table: "EXTENDED UP" / "CAUTION LONG"
Action: Watch closely, tighten stops
Step 2: EXHAUSTION (🔴)
Chart: Price makes final push but with decreasing volume
Indicator: Momentum bars turn DARK green
Orange X appears
Table: "EXHAUSTION BULL" + "4/5 🔺"
Action: CLOSE any longs
Consider SHORT entry
Step 3: SQUEEZE FORMS (Optional)
Chart: Price starts consolidating
Indicator: Cross turns BLACK (Squeeze ON)
Extension area falling toward zero
Action: Wait for Squeeze OFF to confirm reversal
Step 4: BREAKOUT DOWN (⚡)
Indicator: Cross turns GRAY
Bright RED momentum bars
Large red triangle appears
Action: ENTER SHORT (reversal confirmed)
```
**Result:** Exited at the top, caught the reversal.
---
## Configuration Guide
### Recommended Settings by Timeframe
#### For 4H Charts (Swing Trading)
```
Squeeze Settings: (defaults are fine)
- BB Length: 20
- BB MultFactor: 2.0
- KC Length: 20
- KC MultFactor: 1.5
Exhaustion TFs:
- TF1: 15m
- TF2: 1h
- TF3: 4h
- TF4: 12h or Daily
- TF5: Daily or Weekly
Extension Threshold: 2.0σ
Min Confluence: 3/5
```
#### For 1H Charts (Day Trading)
```
Squeeze Settings: (defaults)
Exhaustion TFs:
- TF1: 5m
- TF2: 15m
- TF3: 1h
- TF4: 4h
- TF5: Daily
Extension Threshold: 2.0σ
Min Confluence: 3/5
```
#### For 15m Charts (Scalping)
```
Squeeze Settings:
- BB Length: 15
- KC Length: 15
Exhaustion TFs:
- TF1: 1m
- TF2: 5m
- TF3: 15m
- TF4: 1h
- TF5: 4h
Extension Threshold: 2.5σ (higher to avoid noise)
Min Confluence: 4/5 (more strict)
```
---
### Understanding the Table
Located in top-right corner:
| Row | Meaning |
|-----|---------|
| **Market State** | Current cycle phase (Consolidation/Breakout/Trending/Exhaustion) |
| **Squeeze** | 🔴 ON / 🟢 OFF / 🔵 No |
| **Momentum** | ↑ Bull / ↓ Bear / ~ Weak / — Neutral |
| **Extension** | Actual value in standard deviations (σ) - NOT scaled |
| **Confluence** | How many timeframes agree (X/5 🔺 or 🔻) |
| **Velocity** | Speed of extension change (↑ increasing, ↓ decreasing) |
| **ACTION** | What to do right now |
**Most important rows:**
1. **Market State** - Quick glance at current cycle
2. **Confluence** - Determines signal quality
3. **ACTION** - Direct guidance
---
## Best Practices
### ✅ DO
1. **Wait for High Confidence signals** (large triangles)
- Don't trade every small signal
- Quality over quantity
2. **Use the complete cycle**
- Enter on Breakout (⚡)
- Hold through Trending (↗️/↘️)
- Exit on Exhaustion (🔴/🟢)
3. **Respect confluence**
- 4/5 or 5/5 = Excellent probability
- 3/5 = Good probability
- 1-2/5 = Skip
4. **Combine with price action**
- Support/resistance levels
- Volume confirmation
- Candlestick patterns
5. **Set alerts**
- "Squeeze OFF" - Don't miss breakouts
- "HC Long Setup" / "HC Short Setup"
- "Exit Long" / "Exit Short"
6. **Scale positions**
- Enter 50% on signal
- Add 25% if extension confirms
- Add final 25% if momentum sustains
7. **Use proper risk management**
- Stop loss: Below/above consolidation
- Position size: 1-2% account risk
- Take profit: Extension targets or signals
---
### ❌ DON'T
1. **Don't trade Consolidation state**
- Black cross (Squeeze ON) = Wait mode
- No signals during consolidation
2. **Don't chase Extended moves**
- If extension already >2σ when Squeeze fires
- Even if momentum looks good
- Wait for reversion first
3. **Don't fight strong trends**
- If extension is growing and momentum strong
- Don't counter-trend trade
- Wait for exhaustion signals
4. **Don't ignore velocity**
- If velocity is ↑ and extension high = still dangerous
- If velocity is ↓ and extension high = safer reversal
5. **Don't trade low confluence**
- 1/5 or 2/5 = Different timeframes disagree
- High chance of false signal
6. **Don't use blindly**
- Check overall market context
- Major news events can override signals
- Trend on higher timeframe matters
7. **Don't overtrade**
- Good setups are rare (that's why they work)
- Wait for complete setup formation
---
## Quick Reference Card
### Signal Quality Checklist
**⭐⭐⭐ PERFECT SETUP (Trade this)**
- Squeeze just turned OFF (⚫→⚪)
- Momentum bright and directional
- Extension >2σ (OPPOSITE direction of entry)
- Confluence ≥3/5
- Large triangle signal
- Action says "LONG/SHORT ENTRY ⭐"
**⭐⭐ GOOD SETUP (Trade with caution)**
- Squeeze OFF
- Momentum directional
- Extension moderate
- Confluence ≥3/5
- Small triangle or Action confirms
**⭐ WEAK SETUP (Skip)**
- Low confluence (<3/5)
- Extension same direction as entry
- Momentum weak or conflicting
- Already in Extended/Exhaustion state
---
### State → Action Quick Guide
| See This State | Do This |
|---------------|---------|
| 💤 CONSOLIDATION | Wait, set alerts |
| ⚡ BREAKOUT | Enter in direction |
| ↗️/↘️ TRENDING | Hold positions |
| ⚠️ EXTENDED | Tighten stops, no new entries |
| 🔴/🟢 EXHAUSTION | Exit, consider reversal |
| — NEUTRAL | No trade |
---
## Troubleshooting
**Q: Indicator shows Exhaustion but price keeps going**
**A:** Check velocity and momentum. If still bright bars + velocity ↑, wait. True exhaustion needs momentum weakening.
**Q: Too many false signals**
**A:** Increase Min Confluence to 4/5. Use longer timeframe chart (4h instead of 1h).
**Q: Missing good trades**
**A:** Set alerts for "Squeeze OFF" and "HC Entry" signals. You can't watch charts 24/7.
**Q: Extension area looks weird**
**A:** Remember it's scaled 3x for visibility. Check table for actual values.
**Q: Which timeframe is best?**
**A:** 4H for swing trading, 1H for day trading. Lower = more signals but more noise.
**Q: Can I use this with other indicators?**
**A:** Yes! Combine with:
- Volume profile
- Support/resistance levels
- Moving averages on chart
- RSI for additional confirmation
---
## Final Thoughts
This indicator gives you a complete picture of market structure:
- **Where are we?** (Market State)
- **Where are we going?** (Momentum)
- **How far can it go?** (Extension)
- **When will it reverse?** (Exhaustion)
The key is **patience**. Wait for the complete setup:
1. Consolidation (⚫ Squeeze ON)
2. Breakout (⚪ Squeeze OFF)
3. Right extension direction (oversold for longs, overbought for shorts)
4. Strong confluence (3/5+)
When all pieces align, you get high-probability trades with clear entries, targets, and exits.
**Trade the cycle, not every wiggle.**
---
## Support & Updates
For questions or suggestions, refer to the original script documentation or TradingView community.
**Remember:** No indicator is perfect. Always use proper risk management and combine multiple forms of analysis.
**Good trading! 📈**
ICT FVG MNQ (Fixed Stop + Multi-TP Toggles)ICT FVG
use-18 Min timeframe
0) Stabilizer
Evaluation Mode: PriceCh... (PriceChange mode selected)
Bypass Session Filter: OFF (unchecked)
Bypass Open Delay: OFF
Bypass Cooldown: OFF
1) Entry Logic
Swing Strength (past-only): 4
FVG Min Size (ticks): 8
FVG Expire Bars: 12
2) Risk Management
Contracts (integer): 10
Hard Stop (ticks): 65
Use Trailing Stop: OFF
Trail Activation (ticks): 30
Trail Offset (ticks): 15
Use BreakEven (only with Trailing): OFF
BE Trigger (ticks): 20
BE Plus (ticks): 2
Cooldown Bars: 3
Market Open Delay (minutes): 2
2B) Multi Take Profit (No Trailing)
Use TP1/TP2/TP3 when Trailing OFF: ON (checked)
Enable TP1: ON
Enable TP2: ON
Enable TP3: OFF
TP1 Ticks: 29
TP2 Ticks: 54
TP3 Ticks: 54
TP1 %: 30
TP2 %: 60
TP3 %: 30
Move SL to Entry when TP2 fills: OFF (unchecked)
2C) Safety Exits
Force Exit at Session End: ON (checked)
(A “Max Bars In Trade” box is partially visible but not fully shown.)
3) Sessions
Timezone (IANA): America/New... (looks like America/New_York)
Enable Session 1: ON
S1 Start: 0 : 00
S1 End: 16 : 55
Enable Session 2: OFF
(Values shown: S2 Start 18:02, S2 End 23:55, but session 2 is disabled)
4) Visual
Show FVG Zones: ON
Show Dashboard: ON
Dashboard Position: TopRight
Swing Trade System# Swing Trade Strategy - Complete Guide
## Overview
This is a comprehensive swing trading indicator for TradingView that identifies high-probability trend continuation setups using multi-timeframe analysis, pullback patterns, and momentum confirmation. The strategy combines technical indicators with risk management tools to help traders capture swing moves with defined risk-reward parameters.
## What It Does
The indicator identifies two types of signals:
1. **Base Signals** (small markers) - Initial setup detection with basic criteria met
2. **High Confidence (HC) Signals** (large markers) - Fully confirmed setups with all filters passed, including optional higher timeframe confirmation
Once a HC signal triggers, the indicator automatically plots:
- Dynamic stop loss levels (trailing, break-even, or static)
- Partial take profit (TP1) at 1R
- Final take profit (TP2) at your chosen risk-reward multiple
- Real-time R-multiple tracking
- Confluence dashboard showing all conditions
## How It Works
### Core Signal Logic
The strategy identifies pullback-to-trend entries using this sequence:
**For LONG signals:**
1. **Trend Filter**: Fast EMA (20) above Slow EMA (50) = uptrend confirmed
2. **Pullback**: Previous candle closed between the two EMAs (pulled back but didn't break structure)
3. **RSI Swing Zone**: RSI between 40-60 (not overbought/oversold, just resting)
4. **Reclaim**: Current candle crosses back above Fast EMA (momentum returning)
5. **Volume Spike** (optional): Current volume > 1.5x the 20-period average
6. **HTF Confirmation** (optional): Daily timeframe shows: price > 50 EMA, RSI > 50, and rising momentum
**For SHORT signals:**
The same logic applies in reverse (downtrend, pullback above fast EMA, reclaim below, etc.)
### Risk Management Features
**Stop Loss Placement:**
- Initial stop: Swing low/high over the last 10 bars
- Can upgrade to ATR trailing stop (2x ATR below/above price)
- Can move to break-even after reaching 1R profit
**Take Profit Levels:**
- TP1: 1R (optional partial exit point)
- TP2: 2R default (adjustable to your preference)
**Position Monitoring:**
- Live R-multiple display shows current profit/loss in risk units
- Dynamic stop updates visually on chart
- Color-coded confidence score (0-100%) based on confluence of factors
## Best Way to Use These Signals
### 1. **Wait for High Confidence Signals Only**
- Don't trade every base signal (small markers)
- Only take trades when you see the large "HC L" or "HC S" markers
- These have passed all your filters including higher timeframe alignment
### 2. **Ideal Entry Timing**
**On the Signal Candle:**
- Enter at market close when HC signal fires
- This ensures all conditions were met by candle close
- Your stop and targets are calculated from this close price
**On the Next Candle (more conservative):**
- Wait for the candle after the signal
- Enter if price continues in the signal direction
- Helps avoid false breakouts but may miss some moves
### 3. **Position Sizing**
Use the automatic risk calculation:
- Your risk = Entry price - Stop loss
- Position size = (Account Risk %) ÷ (Entry - Stop)
- Example: Risk $100 on account, Entry $50, Stop $48 = $100 ÷ $2 = 50 shares
### 4. **Trade Management**
**Scaling Out:**
- Exit 50% position at TP1 (1R) to lock profits
- Move stop to break-even on remaining position
- Let rest run to TP2 (2R) or trail with ATR stop
**Manual Override:**
- If price action deteriorates (breaks below both EMAs, RSI divergence), consider early exit
- The dynamic stop is a guide, not gospel—trust price action
## Breakout vs. Retest Strategy
### Understanding Breakout Types
**1. First Touch Breakout (Aggressive)**
- HC signal fires on first touch of fast EMA after pullback
- Higher win rate if volume is strong
- Best in strongly trending markets
- Risk: Could be a false breakout if momentum weak
**2. Retest Entry (Conservative)**
- Wait for price to pull back *again* after initial HC signal
- Enter when price retests the fast EMA a second time
- Look for: lower volume on retest, RSI still in swing zone, fast EMA still above slow EMA
- Lower risk but may miss some fast moves
### Which Breakouts to Take
**Take the FIRST breakout (signal candle) when:**
- ✅ Higher timeframe is strongly aligned (HTF confirmation on)
- ✅ Volume spike is present (>1.5x average)
- ✅ Confidence score ≥70%
- ✅ Trend is fresh (EMAs recently crossed, not extended)
- ✅ Price closed strongly above/below fast EMA (not barely crossed)
- ✅ No major resistance/support nearby
**Wait for a RETEST when:**
- ⚠️ No volume confirmation on first signal
- ⚠️ Confidence score 40-69% (moderate)
- ⚠️ Price barely crossed the fast EMA (weak momentum)
- ⚠️ Trend is extended (price far from slow EMA)
- ⚠️ Major resistance/support level just ahead
- ⚠️ Late in the trading day/week (could see pullback)
### How to Trade Retests
**Setup:**
1. HC signal fires but you decide to wait
2. Price pulls back toward fast EMA over next 1-3 candles
3. Watch for second bounce at the fast EMA
**Confirmation for Retest Entry:**
- Price holds above fast EMA (for longs) without closing below it
- Volume decreases on the pullback (profit-taking, not reversal)
- RSI stays above 50 for longs (or below 50 for shorts)
- Bullish candlestick pattern forms (hammer, engulfing, etc.)
- Slow EMA is still providing support/resistance
**Retest Entry Trigger:**
- Enter when price crosses back in signal direction with momentum
- Or enter with a limit order at the fast EMA
- Use same stop loss as original signal (swing low/high)
- Targets remain the same (measured from your new entry)
## Dashboard Reference
The top confluence table shows real-time status:
- **Trend**: Current trend direction based on EMAs
- **HTF**: Higher timeframe alignment (if enabled)
- **RSI Zone**: Whether RSI is in the 40-60 swing zone
- **Volume**: Volume spike present or not
- **Signal**: Current signal status (HC LONG/SHORT or None)
- **R Risk**: Current profit/loss in R-multiples
- **Stop**: Current stop loss price
- **TP1/TP2**: Status of take profit levels
- **Conf %**: Overall confidence score (70%+ = high probability)
## Alert Setup
The indicator includes 8 alert types:
1. **HC LONG/SHORT ENTRY** - Main trade signals
2. **LONG/SHORT TP1 Reached** - Partial profit alerts
3. **LONG/SHORT Final TP Reached** - Full target hit
4. **LONG/SHORT Stop Hit** - Exit alerts
Set up alerts in TradingView:
- Click "Create Alert" on the indicator
- Choose the specific alert condition
- Set to "Once Per Bar Close" to avoid false alerts
- Configure notification method (app, email, webhook, etc.)
## Recommended Settings
**For Stock Swing Trading (4H-Daily):**
- Fast EMA: 20 | Slow EMA: 50
- Swing Lookback: 10
- RSI Zone: 40-60
- HTF: Daily (if trading 4H charts)
- Risk-Reward: 2R minimum
**For Crypto (faster moves):**
- Fast EMA: 12 | Slow EMA: 26
- Swing Lookback: 7
- RSI Zone: 35-65
- Volume Spike: ON
- Risk-Reward: 1.5-2R
**For Conservative Trading:**
- Enable HTF Confirmation
- Enable Volume Spike requirement
- Use Break-even stop (move after 1R)
- Only trade when Confidence ≥70%
- Wait for retests on marginal setups
## Risk Warning
This indicator is a tool, not a guarantee. Always:
- Use proper position sizing (risk 1-2% per trade)
- Respect the stop losses
- Consider market context (news, earnings, major levels)
- Backtest on your instruments before live trading
- Never override risk management for FOMO
The best signals combine technical confluence with good market conditions and disciplined execution.
QQE MT4 [JOY]I have taken Glaz's code from and converted to V6 to ensure we have the latest version.
Smoothed RSI (yellow) via EMA with configurable period; serves as the main signal line.
ATR of the smoothed RSI is double‑smoothed with a Wilder lookback (RSI2−1) and scaled by the QQE multiplier to form dynamic bands.
Slow trailing stop (red) tracks the smoothed RSI; trend flips when smoothed RSI crosses the opposite band.
How to use it?
* Trend bias: red line below yellow = bullish bias; red above yellow = bearish bias.
* Crossovers: bullish when smoothed RSI crosses above the red trailing stop; bearish on the opposite cross.
* Works best on volatile pairs as in the original description; test and tune the multiplier and smoothing for your market/timeframe.
* Because it’s derived from an oscillator, signals are on RSI scale, not price; overlays will not show price-level stops.
OCC Strategy Optimized (MA 5 + Delayed TSL)# OCC Strategy Optimized (MA 5 + Delayed TSL) - User Guide
## Introduction
The **OCC Strategy Optimized** is an enhanced version of the classic **Open Close Cross (OCC)** strategy. This strategy is designed for high-precision trend following, utilizing the crossover logic of Open and Close moving averages to identify market shifts. This optimized version incorporates advanced risk management, multi-timeframe analysis, and a variety of moving average types to provide a robust trading solution for modern markets.
>
> **Special Thanks:** This strategy is based on the original work of **JustUncleL**, a renowned Pine Script developer. You can find their work and profile on TradingView here: (in.tradingview.com).
---
## Key Features
### 1. Optimized Core Logic
- **MA Period (Default: 5):** The strategy is tuned with a shorter MA length to reduce lag and capture trends earlier.
- **Crossing Logic:** Signals are generated when the Moving Average of the **Close** crosses the Moving Average of the **Open**.
### 2. Multi-Timeframe (MTF) Analysis
- **Alternate Resolution:** Use a higher timeframe (Resolution Multiplier) to filter out noise. By default, it uses $3 \times$ your current chart timeframe to confirm the trend.
- **Non-Repainting:** Includes an optional delay offset to ensure signals are confirmed and do not disappear (repaint) after the bar closes.
### 3. Advanced Risk Management
This script features a hierarchical exit system to protect your capital and lock in profits:
- **Fixed Stop Loss (Initial):** Protects against sudden market reversals immediately after entry.
- **Delayed Trailing Stop Loss (TSL):**
- **Activation Delay:** The TSL only activates after the trade reaches a specific profit threshold (e.g., 1%). This prevents being stopped out too early in the trade's development.
- **Ratchet Trail:** Once activated, the stop loss "ratchets" up/down, never moving backward, ensuring you lock in profits as the trend continues.
- **Take Profit (TP):** A fixed percentage target to exit the trade at a pre-defined profit level.
### 4. Versatility
- **12 MA Types:** Choose from SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HullMA, LSMA, ALMA, SSMA, and TMA.
- **Trade Direction:** Toggle between Long-only, Short-only, or Both.
- **Visuals:** Optional bar coloring to visualize the trend directly on the candlesticks.
---
## User Input Guide
### Core Settings
- **Use Alternate Resolution?:** Enable this to use the MTF logic.
- **Multiplier for Alternate Resolution:** How many charts higher the "filter" timeframe should be.
- **MA Type:** Select your preferred moving average smoothing method.
- **MA Period:** The length of the Open/Close averages.
- **Delay Open/Close MA:** Use `1` or higher to force non-repainting behavior.
### Risk Management Settings
- **Use Trailing Stop Loss?:** Enables the TSL system.
- **Trailing Stop %:** The distance the stop follows behind the price (Optimized Default: 1.5%).
- **TSL Activation % (Delay):** The profit % required before the TSL starts moving. (Optimized Default: 2.0% to ensure 0.5% profit is locked immediately).
- **Initial Fixed Stop Loss %:** Your hard stop if the trade immediately goes against you.
- **Take Profit %:** Your ultimate profit target for the trade.
---
## How to Trade with This Strategy
1. **Identify the Trend:** Look for the Moving Average lines (Close vs Open) to cross.
2. **Wait for Confirmation:** If using MTF, ensure the higher timeframe also shows a trend change.
3. **Manage the Trade:** Let the TSL work. With the default **2.0% Activation** and **1.5% Trail**, the strategy will automatically lock in **0.5% profit** the moment the threshold is hit, then follow the price higher.
4. **Position Sizing:** Adjust the `Properties` tab in the script settings to match your desired capital allocation (Default is 10% of equity).
---
## Recommended Settings
1. Trialing < Activation
2. Check ranging
## Credits
Original Strategy by: **JustUncleL**
Optimized and Enhanced by: **Antigravity AI**
Antigravity OCC Strategy (MA 5 + Delayed TSL)# OCC Strategy Optimized (MA 5 + Delayed TSL) - User Guide
## Introduction
The **OCC Strategy Optimized** is an enhanced version of the classic **Open Close Cross (OCC)** strategy. This strategy is designed for high-precision trend following, utilizing the crossover logic of Open and Close moving averages to identify market shifts. This optimized version incorporates advanced risk management, multi-timeframe analysis, and a variety of moving average types to provide a robust trading solution for modern markets.
>
> **Special Thanks:** This strategy is based on the original work of **JustUncleL**, a renowned Pine Script developer. You can find their work and profile on TradingView here: (in.tradingview.com).
---
## Key Features
### 1. Optimized Core Logic
- **MA Period (Default: 5):** The strategy is tuned with a shorter MA length to reduce lag and capture trends earlier.
- **Crossing Logic:** Signals are generated when the Moving Average of the **Close** crosses the Moving Average of the **Open**.
### 2. Multi-Timeframe (MTF) Analysis
- **Alternate Resolution:** Use a higher timeframe (Resolution Multiplier) to filter out noise. By default, it uses $3 \times$ your current chart timeframe to confirm the trend.
- **Non-Repainting:** Includes an optional delay offset to ensure signals are confirmed and do not disappear (repaint) after the bar closes.
### 3. Advanced Risk Management
This script features a hierarchical exit system to protect your capital and lock in profits:
- **Fixed Stop Loss (Initial):** Protects against sudden market reversals immediately after entry.
- **Delayed Trailing Stop Loss (TSL):**
- **Activation Delay:** The TSL only activates after the trade reaches a specific profit threshold (e.g., 1%). This prevents being stopped out too early in the trade's development.
- **Ratchet Trail:** Once activated, the stop loss "ratchets" up/down, never moving backward, ensuring you lock in profits as the trend continues.
- **Take Profit (TP):** A fixed percentage target to exit the trade at a pre-defined profit level.
### 4. Versatility
- **12 MA Types:** Choose from SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HullMA, LSMA, ALMA, SSMA, and TMA.
- **Trade Direction:** Toggle between Long-only, Short-only, or Both.
- **Visuals:** Optional bar coloring to visualize the trend directly on the candlesticks.
---
## User Input Guide
### Core Settings
- **Use Alternate Resolution?:** Enable this to use the MTF logic.
- **Multiplier for Alternate Resolution:** How many charts higher the "filter" timeframe should be.
- **MA Type:** Select your preferred moving average smoothing method.
- **MA Period:** The length of the Open/Close averages.
- **Delay Open/Close MA:** Use `1` or higher to force non-repainting behavior.
### Risk Management Settings
- **Use Trailing Stop Loss?:** Enables the TSL system.
- **Trailing Stop %:** The distance the stop follows behind the price.
- **TSL Activation % (Delay):** The profit % required before the TSL starts moving.
- **Initial Fixed Stop Loss %:** Your hard stop if the trade immediately goes against you.
- **Take Profit %:** Your ultimate profit target for the trade.
---
## How to Trade with This Strategy
1. **Identify the Trend:** Look for the Moving Average lines (Close vs Open) to cross.
2. **Wait for Confirmation:** If using MTF, ensure the higher timeframe also shows a trend change.
3. **Manage the Trade:** Let the TSL work. Once the trade hits the activation threshold, the TSL will take over, protecting your runner.
4. **Position Sizing:** Adjust the `Properties` tab in the script settings to match your desired capital allocation (Default is 10% of equity).
---
## Credits
Original Strategy by: **JustUncleL**
Optimized and Enhanced by: **Antigravity AI**
Hybrid Strategy: Trend/ORB/MTFHybrid Strategy: Trend + ORB + Multi-Timeframe Matrix
This script is a comprehensive "Trading Manager" designed to filter out noise and identify high-probability breakout setups. It combines three powerful concepts into a single, clean chart interface: Trend Alignment, Opening Range Breakout (ORB), and Multi-Timeframe (MTF) Analysis.
It is designed to prevent "analysis paralysis" by providing a unified Dashboard that confirms if the trend is aligned across 5 different timeframes before you take a trade.
How it Works
The strategy relies on the "Golden Trio" of confluence:
1. Trend Definition (The Setup) Before looking for entries, the script analyzes the immediate trend. A bullish trend is defined as:
Price is above the Session VWAP.
The fast EMA (9) is above the slow EMA (21). (The inverse applies for bearish trends).
2. The Signal (The Trigger) The script draws the Opening Range (default: first 15 minutes of the session).
Buy Signal: Price breaks above the Opening Range High while the Trend is Bullish.
Sell Signal: Price breaks below the Opening Range Low while the Trend is Bearish.
3. The Confirmation (The Filter) A signal is only valid if the Higher Timeframe (default: 60m) agrees with the direction. If the 1m chart says "Buy" but the 60m chart is bearish, the signal is filtered out to prevent false breakouts.
Key Features
The Matrix Dashboard A zero-lag, real-time table in the corner of your screen that monitors 5 user-defined timeframes (e.g., 5m, 15m, 30m, 60m, 4H).
Trend: Checks if Price > EMA 21.
VWAP: Checks if Price > VWAP.
ORB: Checks if Price is currently above/below the Opening Range of that session.
D H/L: Warns if price is near the Daily High or Low.
PD H/L: Warns if price is near the Previous Daily High or Low.
Visual Order Blocks The script automatically identifies valid Order Blocks (sequences of consecutive candles followed by a strong explosive move).
Chart: Draws Green/Red zones extending to the right, showing where price may react.
Dashboard: Displays the exact High, Low, and Average price of the most recent Order Blocks for precision planning.
Risk Management (Trailing Stop) Once a trade is active, the script plots Chandelier Exit dots (ATR-based trailing stop) to help you manage the trade and lock in profits during trend runs.
Visual Guide (Chart Legend)
⬜ Gray Box: Represents the Opening Range (first 15 minutes). This is your "No Trade Zone." Wait for price to break out of this box.
🟢 Green Line: The Opening Range High. A break above this line signals potential Bullish momentum.
🔴 Red Line: The Opening Range Low. A break below this line signals potential Bearish momentum.
🟢 Green / 🔴 Red Zones (Boxes): These are Order Blocks.
🟢 Green Zone: A Bullish Order Block (Demand). Expect price to potentially bounce up from here.
🔴 Red Zone: A Bearish Order Block (Supply). Expect price to potentially reject down from here.
⚪ Dots (Trailing Stop):
🟢 Green Dots: These appear below price during a Bullish trend. They represent your suggested Stop Loss.
🔴 Red Dots: These appear above price during a Bearish trend.
🏷️ Buy / Sell Labels:
BUY: Triggers when Price breaks the Green Line + Trend is Bullish + HTF is Bullish.
SELL: Triggers when Price breaks the Red Line + Trend is Bearish + HTF is Bearish.
Settings
Session: Customizable RTH (Regular Trading Hours) to filter out pre-market noise.
Matrix Timeframes: 5 fixed slots to choose which timeframes you want to monitor.
Order Blocks: Adjust the sensitivity and lookback period for Order Block detection.
Risk: Customize the ATR multiplier for the trailing stop.
Disclaimer
This tool is for educational purposes only. Past performance does not guarantee future results. Always manage your risk properly.
Mutanabby_AI | ONEUSDT_MR1
ONEUSDT Mean-Reversion Strategy | 74.68% Win Rate | 417% Net Profit
This is a long-only mean-reversion strategy designed specifically for ONEUSDT on the 1-hour timeframe. The core logic identifies oversold conditions following sharp declines and enters positions when selling pressure exhausts, capturing the subsequent recovery bounce.
Backtested Period: June 2019 – December 2025 (~6 years)
Performance Summary
| Metric | Value |
|--------|-------|
| Net Profit | +417.68% |
| Win Rate | 74.68% |
| Profit Factor | 4.019 |
| Total Trades | 237 |
| Sharpe Ratio | 0.364 |
| Sortino Ratio | 1.917 |
| Max Drawdown | 51.08% |
| Avg Win | +3.14% |
| Avg Loss | -2.30% |
| Buy & Hold Return | -80.44% |
Strategy Logic :
Entry Conditions (Long Only):
The strategy seeks confluence of three conditions that identify exhausted selling:
1. Prior Move Filter:*The price change from 5 bars ago to 3 bars ago must be ≥ -7% (ensures we're not entering during freefall)
2. Current Move Filter: The price change over the last 2 bars must be ≤ 0% (confirms momentum is stalling or reversing)
3. Three-Bar Decline: The price change from 5 bars ago to 3 bars ago must be ≤ -5% (confirms a significant recent drop occurred)
When all three conditions align, the strategy identifies a potential reversal point where sellers are exhausted.
Exit Conditions:
- Primary Exit: Close above the previous bar's high while the open of the previous bar is at or below the close from 9 bars ago (profit-taking on strength)
- Trailing Stop: 11x ATR trailing stop that locks in profits as price rises
Risk Management
- Position Sizing:Fixed position based on account equity divided by entry price
- Trailing Stop:11× ATR (14-period) provides wide enough room for crypto volatility while protecting gains
- Pyramiding:Up to 4 orders allowed (can scale into winning positions)
- **Commission:** 0.1% per trade (realistic exchange fees included)
Important Disclaimers
⚠️ This is NOT financial advice.
- Past performance does not guarantee future results
- Backtest results may contain look-ahead bias or curve-fitting
- Real trading involves slippage, liquidity issues, and execution delays
- This strategy is optimized for ONEUSDT specifically — results may differ on other pairs
- Always test before risking real capital
Recommended Usage
- Timeframe:*1H (as designed)
- Pair: ONEUSDT (Binance)
- Account Size: Ensure sufficient capital to survive max drawdown
Source Code
Feedback Welcome
I'm sharing this strategy freely for educational purposes. Please:
- Drop a comment with your backtesting results any you analysis
- Share any modifications that improve performance
- Let me know if you spot any issues in the logic
Happy trading
As a quant trader, do you think this strategy will survive in live trading?
Yes or No? And why?
I want to hear from you guys
UT Bot Pro Max (Maks Edition)Script v2.0
UT Bot Pro Max is an advanced, high-precision evolution of the well-known UT Bot indicator.
This version is fully rebuilt into a complete decision-making system that evaluates trend structure, volatility conditions, momentum signals, and entry quality.
It is designed for traders who want clear, structured signals supported by objective filters and transparent reasoning.
1. Core Engine: ATR-Based Trailing Logic
At the heart of the system is an ATR dynamic trailing stop.
It is responsible for:
detecting trend reversals
identifying breakout conditions
switching between long and short bias
determining signal strength
Unlike simple ATR lines, this engine adapts to momentum expansion and contraction, forming the backbone for every signal.
2. Three-Tier Signal Structure
Each signal is classified into one of three levels based on the number of confirmations:
Strong Signals
ATR breakout
trend filter (price relative to EMA200)
RSI filter (oversold/overbought context)
This is the highest-quality confirmation and is suitable for full-size entries.
Medium Signals
ATR breakout
trend filter
(no RSI filter)
This represents a valid trend continuation but with slightly reduced confirmation.
Weak Signals
ATR breakout only
(no trend filter, no RSI filter)
This is an early-stage impulse which can evolve into a stronger move.
The multi-level classification allows the trader to size positions rationally and avoid over-committing during uncertain market conditions.
3. Move-Since-Entry Tracking
When a new long or short position is detected, the indicator records the entry price and automatically tracks the percentage movement from that point.
This offers:
real-time monitoring of open trade performance
objective context for managing exits
clear visualization of progress since entry
4. Smart State-Change Alerts
Instead of simple “BUY” or “SELL” messages, the script sends highly structured alerts whenever the internal state changes.
Each alert includes:
the symbol and timeframe
signal direction and strength
recommended position size based on signal tier
ATR values
RSI value and its state
trend context (bullish, bearish, neutral)
distance from ATR trailing stop
movement since entry
previous state reference (optional)
This makes it ideal for automated systems, algorithmic routing, or Telegram-based signal delivery.
5. Professional On-Chart Status Table
The indicator displays a refined information panel containing:
current signal state (Strong / Medium / Weak / Hold)
ATR signal direction
trend filter result
RSI value and condition
distance to trailing stop (percentage)
current position (long / short / flat)
entry recommendation based on signal strength
ATR value and additional context in expanded mode
There is also a compact mode optimized specifically for mobile trading.
6. Optional Heikin Ashi Mode
The indicator can operate using Heikin Ashi close values for traders who prefer smooth, noise-reduced visualizations.
The internal logic is recalculated automatically.
7. Trend-Colored Candles
An optional feature allows candle coloring based on price position relative to the ATR stop line, highlighting bullish and bearish phases directly on the chart.
What This Indicator Provides
Accurate, context-aware entry signals
Scalable position sizing through multi-tier structure
Objective trend confirmation
Breakout detection with volatility adaptation
Continuous tracking of open position performance
Detailed real-time explanations through alerts
A complete visual dashboard consolidating all key metrics
UT Bot Pro Max (Maks Edition) is built as a practical tool for daily trading.
It is suitable for scalping, day trading, swing trading, automated alerts, and mobile workflows.






















